package com.librelato.tela;

import java.io.Serializable;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import com.librelato.bean.UsuarioBean;
import com.librelato.negocio.UsuarioServico;

public class IndexMovel implements Serializable {

	private static final long serialVersionUID = 810096057701019897L;
	
	private UsuarioBean usuario;

	private UsuarioServico<UsuarioBean> servico = new UsuarioServico<UsuarioBean>();

	public String navigate() {

		FacesMessage msg = null;
		boolean enviado = false;
		String url = "#principal?reverse=true";
		try {
			usuario = this.servico.logar(usuario);
			if (usuario != null) {
				if (usuario.getNome() != null) {
					if (usuario.getAtivo() != null
							&& usuario.getAtivo().equals("Sim")) {
						if (usuario.getListaEmpresas().size() != 0) {
							if (usuario.getListaMenus().size() != 0) {
								msg = new FacesMessage(
										FacesMessage.SEVERITY_INFO, this
												.servico.getValor(
														"msg_header_sucesso"),
										this.servico.getValor(
												"msg_body_sucesso"));
								enviado = true;
							} else {
								msg = new FacesMessage(
										FacesMessage.SEVERITY_WARN, this
												.servico.getValor(
														"msg_header_erro"),
										this.servico.getValor(
												"msg_body_erro_menu"));
								enviado = false;
							}
						} else {
							msg = new FacesMessage(FacesMessage.SEVERITY_WARN,
									this.servico.getValor(
											"msg_header_erro"), this
											.servico.getValor(
													"msg_body_erro_empresa"));
							enviado = false;
						}
					} else {
						msg = new FacesMessage(FacesMessage.SEVERITY_WARN, this
								.servico.getValor("msg_header_erro"), this
								.servico.getValor("msg_body_erro_ativo"));
						enviado = false;
					}
				} else {
					msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, this
							.servico.getValor("msg_header_erro"), this
							.servico.getValor("msg_body_erro"));
				}

			} else {
				msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, this
						.servico.getValor("msg_header_erro"), this
						.servico.getValor("msg_body_erro"));
			}
		} catch (Exception e) {
			msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, this
					.servico.getValor("msg_header_erro"), this
					.servico.getValor("msg_body_erro"));
			e.printStackTrace();
		}

		FacesContext.getCurrentInstance().addMessage(null, msg);

		return enviado ? url : null;

	}

}
